<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 静态属性,静态方法 
        属于类所独有的
        特点:通过类名去调用
        */
        /* 静态方法:
        1.静态方法是属于类所独有的,类创建的时候,就会在内存中存在。不用实例化,直接通过
        类名直接调用,不会造成系统资源的格外浪费 
        2.不可以在静态方法中,调用普通方法
        3.静态方法中的this,指调用静态方法的这个类
        4.静态方法是可以被继承的
        */
        /* 在静态方法中this指-->调用静态方法的类
        */
        class Person{
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
            sayName(){
                console.log(this.name);
            }
            static sayName(){
                console.log(this);
                console.log(this.name)
            }
        }
        var p = new Person("lisi",19);
        Person.sayName()
        p.sayName()
    </script>

    <script>
        /* 
        1.子类可以继承父类的静态方法
        2.在子类的静态方法中调用父类的静态方法,可以通过super/this去调用
        */
        class Animal{
            static baseUrl = "https://www.baidu.com"
            static sayName(){
                console.log("name")
            }
        }
        class Dog extends Animal{
            static sayAge(){
                super.sayName();
                console.log(super.baseUrl)
                console.log("age");
            }
        }
        Teacher.sayAge()
        console.log(Animal.baseUrl)
    </script>
</body>
</html>